package com.youlai.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.system.common.model.Option;
import com.youlai.system.model.entity.SysCategory;
import com.youlai.system.model.form.CategoryForm;
import com.youlai.system.model.query.CategoryPageQuery;
import com.youlai.system.model.vo.CategoryPageVO;

import java.util.List;

/**
 * 课程分类业务接口
 */
public interface SysCategoryService extends IService<SysCategory> {

    /**
     * 根据课程分类内容查询对象
     *
     * @param content
     * @return
     */
    SysCategory getByContentEqual(String content);

    /**
     * 根据课程分类内容保存对象
     *
     * @param content
     * @return
     */
    SysCategory saveByContent(String content);

    /**
     * 分类分页列表
     *
     * @param queryParams
     * @return
     */
    Page<CategoryPageVO> getCategoryPage(CategoryPageQuery queryParams);

    /**
     * 保存故障分类
     *
     * @param categoryForm
     * @return
     */
    boolean saveCategory(CategoryForm categoryForm);


    /**
     * 更新故障分类
     *
     * @param categoryForm
     * @return
     */
    boolean updateCategory(Long categoryId, CategoryForm categoryForm);

    /**
     * 查询单个故障分类
     *
     * @param categoryId
     * @return
     */
    CategoryForm getCategoryForm(Long categoryId);

    /**
     * 删除分类列表
     *
     * @param idsStr
     * @return
     */
    boolean deleteCategories(String idsStr);

    /**
     * 删除分类列表
     *
     * @param ids
     * @return
     */
    boolean deleteCategories(List<Long> ids);

    /**
     * 故障分类下拉列表
     *
     * @return
     */
    List<Option> listCategoryOptions();
}
